namespace string_utils
{
	inline string format(const char* fmt, ...);

	inline string	trim_left(const char* text, const char* symbols = " ");
	inline string trim_right(const char* text, const char* symbols = " ");
	inline string trim(const char* text, const char* symbols = " ");

	inline void split(const char* text, std::vector<string>& result, const char* delimiter = " ");

	inline bool from_string(const char* text, int& result);
	inline bool from_string(const char* text, uint& result);
	inline bool from_string(const char* text, float& result);
	inline bool from_string(const char* text, Vec2& result, const char* delimiter = " ");
	inline bool from_string(const char* text, Vec3& result, const char* delimiter = " ");

	inline string to_string(int val);
	inline string to_string(uint val);
	inline string to_string(float val);
	inline string to_string(const Vec2& val, const char* delimiter = " ");
	inline string to_string(const Vec3& val, const char* delimiter = " ");

	inline bool is_digit(char symbol);
	inline bool is_alpha(char symbol);
	inline bool is_punctuation(char symbol);
	inline bool is_printable(char symbol);
}

#include "StringUtils.inl"